Zum Hauptinhalt springen

KI-basierte Stempelerkennung

·536 Wörter·3 min
YOLO Computer Vision Deep Learning Siamesische Netzwerke PyTorch Maschinelles Lernen Objektdetektion Klassifikation Numpy OpenCV Data Scientist Python CI/CD Git

In diesem Projekt wurde ein KI-basiertes System entwickelt, um Stempel in PDF-Dokumenten zu erkennen. Der Prozess bestand aus zwei wesentlichen Schritten: Zuerst wurde der Stempel im Dokument lokalisiert, anschließend wurde der Stempel identifiziert. Diese zweistufige Herangehensweise ermöglichte eine präzise und effiziente Bearbeitung von PDF-Dokumenten, insbesondere für Anwendungen im Dokumentenmanagement und der Automatisierung von Verwaltungsprozessen.

Prozess: Von der Lokalisierung bis zur Identifizierung #

Der mehrstufige Prozess gliederte sich in zwei Hauptschritte:

  1. Lokalisierung der Stempel im PDF-Dokument: Hierbei wurde die Position des Stempels im Dokument ermittelt.
  2. Identifizierung des Stempels: Nachdem die Position des Stempels gefunden wurde, wurde bestimmt, um welchen Stempel es sich handelt.

Dieser Ansatz erlaubt eine robuste Erkennung, auch wenn die Stempel in verschiedenen Größen und Rotationen auftreten.

graph LR A[PDF Dokument] -->|Lokalisierung| B[Stempelposition] B -->|Identifizierung| C[Stempelklassifikation]

Datengrundlage und Datenaugmentation #

Für die Entwicklung der ML-Modelle standen nur wenige Beispieldaten zur Verfügung. Dies stellte eine Herausforderung dar, da nicht genügend Daten für das Training von Machine Learning Modellen vorlagen. Um diese Hürde zu überwinden, wurden synthetische Daten erzeugt. Basierend auf den bereitgestellten Beispielen wurde eine Reihe von synthetischen Stempeln sowie PDF-Dokumente mit diesen Stempeln erstellt.

Die Generierung von synthetischen Stempeln ermöglichte es, das Modell auf eine Vielzahl von möglichen Stempelvarianten zu trainieren, ohne auf eine große Menge realer Daten angewiesen zu sein. Durch diesen Schritt konnte die Varianz in den Trainingsdaten erhöht und die Generalisierungsfähigkeit des Modells verbessert werden.

Teil der Generierung war es die Stempel möglichst realistisch aussehen zu lassen in dem diese auch künstlich gealtert und verwaschen wurden. Zusätzlich wurde Augmentierung angewendet, um die Diversifikation zu steigern. Die Stempel wurden rotiert, verzerrt und verfärbt.

Verwendete Modelle #

1. Lokalisierung der Stempel: YOLO #

Für die Lokalisierung der Stempel im Dokument wurde das YOLO-Modell eingesetzt. YOLO (You Only Look Once) ist ein State-of-the-Art Object Detection Modell, das besonders gut für Echtzeitanwendungen geeignet ist. Es konnte die Stempel effizient im Dokument erkennen und die exakten Positionen der Stempel bestimmen.

2. Identifizierung der Stempel: Siamesisches Neuronales Netzwerk #

Für die Identifizierung des spezifischen Stempels wurde ein siamesisches neuronales Netzwerk verwendet. Ein siamesisches Netzwerk ist ein spezielles Architekturkonzept, das verwendet wird, um Ähnlichkeiten zwischen zwei Eingaben zu bestimmen. Zwei identische Netzwerke verarbeiten dabei zwei unterschiedliche Eingaben, und der Abstand zwischen den erzeugten Feature-Vektoren gibt an, wie ähnlich die beiden Eingaben sind.

Dieser Ansatz ist besonders nützlich für Klassifikationsprobleme, bei denen es viele unterschiedliche Klassen gibt, aber nicht genügend Trainingsdaten für jede Klasse vorhanden sind. In diesem Fall ermöglichte das siamesische Netzwerk die genaue Identifizierung des Stempels, durch einen Abgleich mit einem existierenden Stempelkatalog.

graph LR A1[Stempel A] --> B1[Siamesisches Netzwerk] A2[Stempel B] --> B1[Siamesisches Netzwerk] B1 --> C1[Ähnlichkeitsvergleich] C1 --> D1[Identifikation]

Fazit #

Durch den Einsatz von modernen Deep Learning Methoden konnte ein robustes System zur Stempelerkennung in PDF-Dokumenten entwickelt werden. Die Kombination aus synthetischen Daten, einem YOLO-Modell für die Lokalisierung und einem siamesischen Netzwerk für die Klassifikation ermöglichte eine effiziente und genaue Lösung, die sich ideal für die Automatisierung von Dokumentenprozessen eignet.

Tätigkeiten #

  • Entwurf und Generierung von synthetischen Stempeldaten (Stempel, sowie gestempelte PDF-Dokumente); entwickelt in Form von Python-Skripten
  • Ausführung mehrerer Trainings eines YOLOv3 auf den Stempeldaten zur Lokalisierung der Stempel
  • Architekturentwurf und Implementierung eines Siamesischen-Netzwerks zur Identifizierung der Stempel
  • Ausführung und Evaluation mehrerer Experimente zum Identifizieren des besten KI-Vorgehens
  • Präsentation der Ergebnisse